i
Universitas Kristen MaranathaSIMULASI DAN PERBANDINGAN WAKTU PENDEKODEAN ANTARA
ALGORITMA PETERSON-GORENSTEIN-ZIERLER DAN
BERLEKAMP-MASSEY PADA KODE REED-SOLOMON
Disusun oleh :
Februyanto Maranda Sagala (0722010)
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha,
Jl.Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia,
e-mail : [email protected]
ABSTRAK
Pada sistem komunikasi, proses pengiriman data dari sumber ke tujuan
dapat dikatakan baik bila data yang diterima sama dengan data yang dikirim. Pada
kenyataannya selama proses pengiriman data, data yang dikirim seringkali
mengalami gangguan yang dapat menyebabkan data yang diterima tidak sama
dengan data yang dikirim. Pada Tugas Akhir ini dibahas metode Reed-Solomon
untuk memperbaiki error yang mungkin terjadi pada proses pengiriman. Proses
pengkodean dan pendekodean kode Reed-Solomon telah berhasil disimulasikan
pada Tugas Akhir ini. Untuk mendekodekan kode Reed-Solomon digunakan dua
dekoder dengan algoritma berbeda. Algoritma yang digunakan untuk dekoder
adalah Berlekamp-Massey (BMA) dan Peterson-Gorenstein-Zierler (PGZ). Waktu
proses pendekodean dengan kedua algoritma tersebut dibandingkan. Hasil
simulasi dan analisa data diketahui bahwa kedua dekoder memiliki kemampuan
yang sama dalam mengoreksi error dengan batas maksimal berjumlah t simbol.
Perbedaan waktu pendekodean rata-rata kedua dekoder adalah 0,115 s
untuk nilai t dari 1 sampai 5 simbol. Dekoder PGZ lebih lama sekitar 10 kali,120
kali, dan 960 kali dibanding dekoder BMA untuk nilai t=6,7, dan 8 berdasarkan
nilai t untuk setiap nilai m (jumlah bit tiap 1 simbol). Perbedaan waktu
pendekodean rata-rata untuk nilai t dari 1 sampai 7 simbol secara berturut-turut
adalah 0,04 s, 0,048 s, 0,058 s, 0,054 s, 0,259s, 1,605 s, dan 14,606 s berdasarkan
nilai m untuk setiap nilai t. Dekoder PGZ kurang efisien dari segi waktu proses
pendekodean dibandingkan dekoder BMA untuk nilai t>5 simbol.
ii
Universitas Kristen MaranathaSIMULATION AND DECODING TIME COMPARISON BETWEEN
PETERSON-GORENSTEIN-ZIERLER ALGORITHM AND
BERLEKAMP-MASSEY ALGORITHM ON REED-SOLOMON CODE
Composed by :
Februyanto Maranda Sagala (0722010)
Electrical Engineering Department, Maranatha Christian University,
Jl.Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia,
e-mail: [email protected]
ABSTRACT
In the communication system, the process of sending data from source to
destination can be said to be good when the data is sent equal with the data
received. In fact during the process of sending data, the data sent is often
susceptible to interference which can cause the received data does not match with
data sent. In this final project, to fix the error which may occur when data sent is
used Reed-Solomon method. Process of encoding and decoding Reed-Solomon
code have been successfully simulated in this final project. For decoding
Reed-Solomon code was used by two decoders with different algorithms. The algorithm
that used for the decoder is Berlekamp-Massey Algorithm (BMA) and
Peterson-Gorenstein-Zierler Algorithm (PGZ). The duration of decoding process by two
decoders are compared. In this simulation results and analysis of data was known
that two decoder has the same capability in error correcting maximum up to t
symbols.
The decoding time differences of the two decoders for t from 1 to 5
symbols in the average is 0.115 second. PGZ decoder longer about 10 times, 120
times and 960 times compared to the value decoder BMA for t= 6,7, and 8 based
on the value of t for each value of m. The decoding time difference in the average
for value of t from 1 to 7 symbols in a row is 0.04 s, 0.048 s, 0.058 s, 0.054 s,
0.259 s, 1.605 s and 14.606 s based on the value of m for each value of t. PGZ
decoder is less efficient in terms of processing time compared to decoding use
BMA decoder for the value of t > 5 symbols.
v
Universitas Kristen MaranathaDAFTAR ISI
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... x
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Identifikasi Masalah ... 2
1.3 Tujuan ... 2
1.4 Pembatasan Masalah ... 3
1.5 Sistematika Penulisan ... 3
BAB II LANDASAN TEORI ... 4
2.1 Pendahuluan ... 4
2.2 Klasifikasi Kode Reed-Solomon ... 5
2.3 Aritmatika Galois Field- GF(2) ... 6
2.3.1 Operasi Penjumlahan dan Pengurangan ... 6
2.3.2 Operasi Perkalian dan Pembagian ... 7
2.3.3 Polinomial Galois Field ... 7
2.3.4 Polinomial Primitif ... 8
2.4 Proses Pengkodean Kode Reed-Solomon ... 11
2.4.1 Pembentukan Polinomial Generator ... 11
vi
Universitas Kristen Maranatha2.5 Proses Pendekodean Kode Reed-Solomon ... 13
2.5.1 Menghitung Nilai Sindrom ... 14
2.5.2 Menghitung Polinomial Lokasi Error ... 15
2.5.3 Metode Pencarian Chien ... 17
2.5.4 Menghitung Error Magnitude ... 19
BAB III SIMULASI PENGKODEAN DAN PENDEKODEAN ... 20
3.1 Enkoder Kode Reed-Solomon... 20
3.2 Dekoder Kode Reed-Solomon ... 24
3.2.1 Menghitung Sindrom ... 26
3.2.2Mencari Error Locator Polynomial (Algoritma Berlekamp-Massey) .. 27
3.2.3 Mencari Error Locator Polynomial (Algoritma PGZ)... 29
3.2.4 Menghitung Akar Error Locator Polynomial (Chien Search) ... 33
3.2.5 Mencari LokasiError ... 34
3.2.6 Menghitung Error MagnitudePada Dekoder BMA ... 35
3.2.7 Menghitung Error Magnitude Pada dekoder PGZ... 36
3.2.8 Perbaikan Error ... 37
BAB IV DATA PENGAMATAN DAN PERBANDINGAN ... 38
4.1
Data Pengamatan Dekoder BMA ... 39
4.1.1 Analisa DataPada Dekoder BMA ... 41
4.2 Data Pengamatan Pada Dekoder PGZ... 46
4.2.1 Analisa Data Pada Dekoder PGZ ... 48
4.3 Perbandingan Dekoder BMA dengan PGZ ... 53
4.3.1 Perbandingan Berdasarkan Nilai t ... 53
4.3.2 Perbandingan Berdasarkan Nilai m ... 55
4.3.3 Perbandingan Berdasarkan Nilai k dan Jumlah Error... 57
vii
Universitas Kristen MaranathaBAB V KESIMPULAN DAN SARAN ... 63
5.1 Kesimpulan ... 63
5.2 Saran ... 63
DAFTAR PUSTAKA ... 64
viii
Universitas Kristen MaranathaDAFTAR GAMBAR
Gambar 2.1 Diagram blok kode Reed-Solomon ... 4
Gambar 2.2 Diagram Kode Reed-Solomon (n,k) ... 5
Gambar 2.3 Tahap-tahap pada dekoder Reed Solomon ... 13
Gambar 3.1 Diagram alir proses pembentukan kode RS...21
Gambar 3.2 Subroutine pembentukan Galois field GF(2
m) ... 21
Gambar 3.3 Diagram alir subroutine pembentukan polinomial generator ... 22
Gambar 3.4 Diagram alir pembentukan kode RS ... 23
Gambar 3.5 Diagram alir pendekodean dengan algoritma BMA ... 24
Gambar 3.6 Diagram alir pedekodean dengan algoritma PGZ ... 25
Gambar 3.7 Diagram alir proses menghitung sindrom ... 26
Gambar 3.8 Diagram alir subroutine mencari error locator polynomial (BMA) 27
Gambar 3.9 Diagram alir subroutine mencari error locator polynomial-BMA
(lanjutan) ... 28
Gambar 3.10 Diagram alir subroutineerror locator polynomial (PGZ) ... 29
Gambar 3.11 Diagram alir subroutine jika t = 1 ... 30
Gambar 3.12 Diagram alir subroutine jika t = 2 ... 30
Gambar 3.13 Diagram alir subroutine jika t = 3 ... 31
Gambar 3.14 Diagram alir subroutine jika t = 4 ... 32
Gambar 3.15 Diagram alir subroutine mencari akar error locator polynomial ... 33
Gambar 3.16 Diagram alir subroutine mencari lokasi error... 34
Gambar 3.17 Diagram alir subroutine menghitung error magnitude (BMA) ... 35
Gambar 3.18 Diagram alir subroutine menghitung error magnitude (PGZ) ... 36
Gambar 3.19 Diagram alir subroutine perbaikan error ... 37
Gambar 4.1 Tampilan program simulasi pada MATLAB...38
Gambar 4.2 Tampilan program menghitung waktu proses pendekodean ... 41
Gambar 4.3 Grafik waktu pendekodean rata-rata pada dekoder BMA (m= 4) .. 45
Gambar 4.4 Grafik waktu pendekodean rata-rata pada dekoder BMA (m= 5) .. 45
Gambar 4.5 Grafik waktu pendekodean rata-rata pada dekoder BMA (m= 6) .. 46
ix
Universitas Kristen MaranathaGambar 4.7 Grafik waktu pendekodean rata-rata pada dekoder PGZ (m= 5) .... 52
Gambar 4.8 Grafik waktu pendekodean rata-rata pada dekoder PGZ (m= 6) .... 53
Gambar 4.9 Grafik perbandingan untuk nilai m=4 ... 54
Gambar 4.10 Grafik perbandingan untuk nilai m=5 ... 54
Gambar 4.11 Grafik perbandingan untuk nilai m=6 ... 54
Gambar 4.12 Grafik perbandingan untuk nilai t=1 ... 55
Gambar 4.13 Grafik perbandingan untuk nilai t=2 ... 55
Gambar 4.14 Grafik perbandingan untuk nilai t=3 ... 56
Gambar 4.15 Grafik perbandingan untuk nilai t=4 ... 56
Gambar 4.16 Grafik perbandingan untuk nilai t=5 ... 56
Gambar 4.17 Grafik perbandingan untuk nilai t=6 ... 57
Gambar 4.18 Grafik perbandingan untuk nilai t=7 ... 57
Gambar 4.19 Grafik perbandingan kedua dekoder untuk nilai m=4 ... 58
Gambar 4.20 Grafik perbandingan kedua dekoder untuk nilai m=5 ... 59
x
Universitas Kristen MaranathaDAFTAR TABEL
Tabel 2.1 Polinomial primitif pada GF(2
m) ... 9
Tabel 2.2 Pembentukan Galois field (16) ... 10
Tabel 4.1 Waktu proses pendekodean rata-rata berdasarkan nilai m dan t...42
Tabel 4.2 Waktupendekodean rata-rata pada dekoder BMA (m=4 dan m=5) .... 43
Tabel 4.3 Waktu proses pendekodean pada dekoder BMA (m=6) ... 44
Tabel 4.4 Waktu proses pendekodean rata-rata berdasarkan nilai m dan t ... 49
Tabel 4.5 Waktu pendekodean rata-ratapada dekoder PGZ (m=4 dan m=5) ... 50
LAMPIRAN A
Universitas Kristern Maranatha
%---Simulasi
Error Correcting Code
dengan algoritma
---%
%--- Berlekamp-Massey atau Peterson-Gorenstein-Zierler ----%
%--- Pada kode Reed-Solomon ---%
%*** Parameter Kode RS ***
m = 4 %Jumlah bit dalam 1 simbol, GF(2^m) n = 2^m - 1 %Panjang kode RS
k = 3 %Jumlah data dalam satu kode RS h = n-k %Panjang parity tiap kode RS
t = h/2 %Jumlah maksimum error yang dapat dikoreksi
%****Membangkitkan Galois Field dan Generator polynomial***%
% Membentuk Galois Field
field = gftuple([-1:2^m-2]', m, 2);
%Membangkitkan polinomial generator
c = [1 0]; p(1) = c(1);
for i = 1:h-1
p(1) = gfmul(p(1),1,field); p(2) = 0;
c = gfconv(c,p,field); end
g = c;
%**************** Pengkodean Reed-Solomon *****************%
%Membangkitkan data acak integer
DATA_IN = randint(1,k,[0 n-1]);
%Membentuk kode RS
parity = RS_ENC4(DATA_IN,n,k,g,field); RS_CODE = [parity DATA_IN];
%************************ Channel *************************%
RECEIVED = RS_CODE
%************Menambahkan error secara manual***************%
%*********dengan nilai acak di sembarang posisi************%
RECEIVED(3) = gfadd(RECEIVED(3),randint(1,1,[-1 n-1]),field); RECEIVED(5) = gfadd(RECEIVED(3),randint(1,1,[-1 n-1]),field);
%****************
%***** Pendekodean dengan algoritma Berlekamp-Massey ******%
DECODED = RS_E_DEC(RECEIVED,n,k,t,h,g,field);
%*Pendekodean dengan algoritma Peterson-Gorenstein-Zierler*%
Universitas Kristern Maranatha
%****************
if all(DECODED == RS_CODE) disp('Decoding Success') else
disp('Decoding Failure') end
%---Subroutine pembentukan kode Reed-Solomon---%
function R = RS_ENC(code,n,k,g,field)for ii = 1:n-k
shiftpol(ii)= -inf; end
shiftpol(n-k+1)=0;
shiftcode=gfconv(code,shiftpol,field);
[Q, R]=gfdeconv(shiftcode,g,field); while length(R)< n-k
R=[R -inf]; end
%--Subroutine pendekodean dgn algoritma Berlekamp-Massey---%
function DECODED = RS_E_DEC(received,n,k,t,h,g,field);
%******************Menghitung nilai sindrom**********************% S = [];
%Substitusi nilai alpha^i dari tiap polinomial yg diterima for ii = 1:2*t
S(ii)= -Inf; for cc = 1:n
S(ii) = gfadd(S(ii),gfmul(received(cc),gfpow(ii,cc-1,n),field) ,field); %Sum all the terms
end end
%Periksa apakah nilai semua sindrom = 0,
%Jika semua nilai sindrom 0, artinya tidak terjadi error for i = 1:2*t
pol_tes(i) = -Inf; end
if all (S == pol_tes)
message = received; else
%*Hitung Error Locator Polynomial dgn algoritma Berlekamp-Massey*% sigma = BMA(n,k,t,S,field);
%*Mencari nilai akar dr error locator polynomial dg Chien search*% akar_polinomial = [];
Universitas Kristern Maranatha for cc = 1:length(sigma)
error_r = gfadd(error_r,gfmul(sigma(cc),gfpow(ii,cc-1,n),field) ,field); %Sum all the terms
end
if error_r == -Inf kk = kk + 1;
akar_polinomial(kk) = ii; end
end
% Mengecek nilai akar apakah bernilai real
% Membentuk kembali error locator polynomial dgn mengalikan tiap % akar yg didapat
% Lalu bagi error locator polynomial dgn polinomial_tes
% Jika panjang sisa hasil bagi lbh dr 1 maka akar tidak real pol_tes = 0;
for ii = 1:length(akar_polinomial)
pol_tes = gfconv(pol_tes,[akar_polinomial(ii) 0],field);
end
[QQ,RR] = gfdeconv(sigma,pol_tes,field); if length(QQ) > 1
DECODED = received; return
end
%******************** Mencari posisi error *********************% lokasi_error = [];
for ii = 1:length(akar_polinomial)
lokasi_error(ii) = gfdiv(0,akar_polinomial(ii),field); end
%********Menghitung Error Magnitude dgn algoritma Forney********%
%Hitung polinomial error magnitude: %1. Membentuk fungsi [1 + S(x)] SS(1) = 0;
for ii = 1: 2*t
SS(ii+1) = S(ii); end
%2. Membentuk persamaan (x)= ?(x) [1 + S(x)] OMEGA = gfconv(sigma,gfadd(0,SS,field),field);
%3. OMEGA = (SS * sigma)mod(x^(2t+1)) %3.1. Bentuk fungsi := x^(2t+1)
for ii = 1: (2*t) DIV(ii)= -Inf; end
DIV(2*t+1) = 0;
Universitas Kristern Maranatha %OMEGA
%4. Differentiate the key equation with respect to x sigma_diff = gfdiff(sigma);
%Menghitung error magnitude
%Substitusi nilai invers ke sigma_diff for ii = 1:length(lokasi_error)
ERR_DEN= gfsubstitute(sigma_diff,gfdiv(0,lokasi_error(ii),field), length(sigma_diff),n,field);
ERR_NUM= gfsubstitute(OMEGA,gfdiv(0,lokasi_error(ii),field),length (OMEGA),n,field);
ERR_NUM= gfmul(ERR_NUM,lokasi_error(ii),field);
ERR(ii) = gfmul(ERR_NUM,gfdiv(0,ERR_DEN,field),field); end
%Menyusun polinomial error sesuai lokasi dan error magnitude for ii = 1:n
ERR_p(ii) = -Inf; end
for ii = 1:length(lokasi_error) pp = lokasi_error(ii); ERR_p(pp+1) = ERR(ii); end
% kode RS yang diterima lalu dijumlahkan dengan polinomial error message = gfadd(received,ERR_p,field);
end
DECODED = message;
%---Subroutine mencari error locator polynomial dgn BMA----%
function sigma = BMA(n,k,t,S,field)%Step 2: Inisialisasi variabel kk = 0;
for i = 1:n
Kappa(1,i) = -Inf; end
Kappa(1,1) = 0; %Kappa=>?(0)(x)=1
%shift register L = 0;
%C(x)= x C = [-inf 0];
done = 0;
%Step 3:
Universitas Kristern Maranatha sum = -Inf;
for i = 1:L %Kappa(kk,i+1) %S(kk-i)
sum = gfadd(sum,gfmul(Kappa(kk,i+1),S(kk-i),field),field); end
%discrepancy ->pers.2.14
discrepancy(kk) = gfadd(S(kk),sum,field);
%Step 4:
if (discrepancy(kk) == -Inf) for i = 1:n
Kappa(kk+1,i) = Kappa(kk,i); end
end
if (discrepancy(kk) ~= -Inf) for i = 1:n
Kappa_i(i) = Kappa(kk-1+1,i); end
Kappa_k = gfadd(Kappa_i,gfconv(discrepancy(kk),C,field),field);
while length(Kappa_k) < n Kappa_k = [Kappa_k -Inf]; end
for i = 1:length(Kappa_k)
Kappa(kk+1,i) = Kappa_k(i); end
%Step 7: if (2*L < kk)
L = kk - L; for i = 1:n
Kappa_k(i) = Kappa(kk+1-1,i); end
C = gfconv(Kappa_k,gfdiv(0,discrepancy(kk),field),field); end
end
%Step 8:
C = gfconv([-Inf 0],C,field);
%step 9: if kk >= 2*t done = 1; end
end
for i = 1:n
sigma(i) = Kappa(kk+1,i); end
%---Subroutine pendekodean dgn algoritma PGZ---%
Universitas Kristern Maranatha %*****************Menghitung nilai sindrom***********************% S = [];
%Substitusi nilai alpha^i dari tiap polinomial yg diterima for ii = 1:2*t
S(ii)= -Inf; for cc = 1:n
S(ii) = gfadd(S(ii),gfmul(received(cc),gfpow(ii,cc-1,n),field) ,field); %Sum all the terms
end end
%Periksa apakah nilai semua sindrom = 0,Jika semua nilai sindrom 0, artinya tidak terjadi error
for i = 1:2*t
pol_tes(i) = -Inf; end
if all (S == pol_tes) message = received; else
%******Hitung Error Locator Polynomial dengan algoritma PGZ******% sigma= PGZ(n,k,t,S,field);
%*Mencari nilai akar dr error locator polynomial dgn Chien search% akar_polinomial = [];
kk = 0;
for ii = 0:n-1 error_r = -Inf;
for cc = 1:length(sigma)
error_r = gfadd(error_r,gfmul(sigma(cc),gfpow(ii,cc-1,n),field), field); %Sum all the terms
end
if error_r == -Inf kk = kk + 1;
akar_polinomial(kk) = ii; end
end
% Mengecek nilai akar adalah real dengan Membentuk kembali error % locator polynomial dgn mengalikan tiap akar yg didapat
% Lalu bagi error locator polynomial dgn polinomial_tes
% Jika panjang sisa hasil bagi lbh dr 1 maka akar tidak real pol_tes = 0;
for ii = 1:length(akar_polinomial)
pol_tes = gfconv(pol_tes,[akar_polinomial(ii) 0],field);
end
[QQ,RR] = gfdeconv(sigma,pol_tes,field); if length(QQ) > 1
Universitas Kristern Maranatha end
%Mencari posisi error lokasi_error = [];
for ii = 1:length(akar_polinomial)
lokasi_error(ii) = gfdiv(0,akar_polinomial(ii),field); end
%disusun dari posisi terendah lokasi_error=sort(lokasi_error);
%*******Menghitung Error Magnitude dgn menyusun Matriks Be*******% for ii=1:length(akar_polinomial)
for jj=1:length(akar_polinomial)
Be(ii,jj)=mod(lokasi_error(jj)*ii,n); end
end
%Mencari besar error jika hanya terjadi 1 error if(length(akar_polinomial)==1)
besar_error(1)=gfdiv(S(1),sigma(2),field);
else
determinan=deter(Be,field); kofaktor=kofak(Be,field); Adj=kofaktor';
mydets=abs(determinan);
%Nilai invers matriks [q,z]=size(Be);
for a=1:q for d=1:z
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
%Mencari besar error dari brp banyak error yg terjadi if(length(akar_polinomial)==2)
besar_error(1)=gfadd(gfconv(Adj(1,1),S(1),field),gfconv(Adj(1,2),S (2),field),field);
besar_error(2)=gfadd(gfconv(Adj(2,1),S(1),field),gfconv(Adj(2,2),S (2),field),field);
else if(length(akar_polinomial)==3)
besar_error(1)=gfadd(gfadd(gfconv(Adj(1,1),S(1),field),gfconv(Adj( 1,2),S(2),field),field),gfconv(Adj(1,3),S(3),field),field); besar_error(2)=gfadd(gfadd(gfconv(Adj(2,1),S(1),field),gfconv(Adj( 2,2),S(2),field),field),gfconv(Adj(2,3),S(3),field),field); besar_error(3)=gfadd(gfadd(gfconv(Adj(3,1),S(1),field),gfconv(Adj( 3,2),S(2),field),field),gfconv(Adj(3,3),S(3),field),field);
Universitas Kristern Maranatha else if(length(akar_polinomial)==4)
besar_error(1)=gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(1),field),gfcon v(Adj(1,2),S(2),field),field),gfconv(Adj(1,3),S(3),field),field),g fconv(Adj(1,4),S(4),field),field);
besar_error(2)=gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(1),field),gfcon v(Adj(2,2),S(2),field),field),gfconv(Adj(2,3),S(3),field),field),g fconv(Adj(2,4),S(4),field),field);
besar_error(3)=gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(1),field),gfcon v(Adj(3,2),S(2),field),field),gfconv(Adj(3,3),S(3),field),field),g fconv(Adj(3,4),S(4),field),field);
besar_error(4)=gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(1),field),gfcon v(Adj(4,2),S(2),field),field),gfconv(Adj(4,3),S(3),field),field),g fconv(Adj(4,4),S(4),field),field);
else if(length(akar_polinomial)==5)
besar_error(1)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(1),field) ,gfconv(Adj(1,2),S(2),field),field),gfconv(Adj(1,3),S(3),field),fi eld),gfconv(Adj(1,4),S(4),field),field),gfconv(Adj(1,5),S(5),field ),field);
besar_error(2)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(1),field) ,gfconv(Adj(2,2),S(2),field),field),gfconv(Adj(2,3),S(3),field),fi eld),gfconv(Adj(2,4),S(4),field),field),gfconv(Adj(2,5),S(5),field ),field);
besar_error(3)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(1),field) ,gfconv(Adj(3,2),S(2),field),field),gfconv(Adj(3,3),S(3),field),fi eld),gfconv(Adj(3,4),S(4),field),field),gfconv(Adj(3,5),S(5),field ),field);
besar_error(4)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(1),field) ,gfconv(Adj(4,2),S(2),field),field),gfconv(Adj(4,3),S(3),field),fi eld),gfconv(Adj(4,4),S(4),field),field),gfconv(Adj(4,5),S(5),field ),field);
besar_error(5)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(5,1),S(1),field) ,gfconv(Adj(5,2),S(2),field),field),gfconv(Adj(5,3),S(3),field),fi eld),gfconv(Adj(5,4),S(4),field),field),gfconv(Adj(5,5),S(5),field ),field);
else if(length(akar_polinomial)==6)
besar_error(1)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(1), field),gfconv(Adj(1,2),S(2),field),field),gfconv(Adj(1,3),S(3),fie ld),field),gfconv(Adj(1,4),S(4),field),field),gfconv(Adj(1,5),S(5) ,field),field),gfconv(Adj(1,6),S(6),field),field);
besar_error(2)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(1), field),gfconv(Adj(2,2),S(2),field),field),gfconv(Adj(2,3),S(3),fie ld),field),gfconv(Adj(2,4),S(4),field),field),gfconv(Adj(2,5),S(5) ,field),field),gfconv(Adj(2,6),S(6),field),field);
Universitas Kristern Maranatha besar_error(4)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(1), field),gfconv(Adj(4,2),S(2),field),field),gfconv(Adj(4,3),S(3),fie ld),field),gfconv(Adj(4,4),S(4),field),field),gfconv(Adj(4,5),S(5) ,field),field),gfconv(Adj(4,6),S(6),field),field);
besar_error(5)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(5,1),S(1), field),gfconv(Adj(5,2),S(2),field),field),gfconv(Adj(5,3),S(3),fie ld),field),gfconv(Adj(5,4),S(4),field),field),gfconv(Adj(5,5),S(5) ,field),field),gfconv(Adj(5,6),S(6),field),field);
besar_error(6)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(6,1),S(1), field),gfconv(Adj(6,2),S(2),field),field),gfconv(Adj(6,3),S(3),fie ld),field),gfconv(Adj(6,4),S(4),field),field),gfconv(Adj(6,5),S(5) ,field),field),gfconv(Adj(6,6),S(6),field),field);
else if(length(akar_polinomial)==7)
besar_error(1)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(1,1) ,S(1),field),gfconv(Adj(1,2),S(2),field),field),gfconv(Adj(1,3),S( 3),field),field),gfconv(Adj(1,4),S(4),field),field),gfconv(Adj(1,5 ),S(5),field),field),gfconv(Adj(1,6),S(6),field),field),gfconv(Adj (1,7),S(7),field),field);
besar_error(2)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1) ,S(1),field),gfconv(Adj(2,2),S(2),field),field),gfconv(Adj(2,3),S( 3),field),field),gfconv(Adj(2,4),S(4),field),field),gfconv(Adj(2,5 ),S(5),field),field),gfconv(Adj(2,6),S(6),field),field),gfconv(Adj (2,7),S(7),field),field);
besar_error(3)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(3,1) ,S(1),field),gfconv(Adj(3,2),S(2),field),field),gfconv(Adj(3,3),S( 3),field),field),gfconv(Adj(3,4),S(4),field),field),gfconv(Adj(3,5 ),S(5),field),field),gfconv(Adj(3,6),S(6),field),field),gfconv(Adj (3,7),S(7),field),field);
besar_error(4)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(4,1) ,S(1),field),gfconv(Adj(4,2),S(2),field),field),gfconv(Adj(4,3),S( 3),field),field),gfconv(Adj(4,4),S(4),field),field),gfconv(Adj(4,5 ),S(5),field),field),gfconv(Adj(4,6),S(6),field),field),gfconv(Adj (4,7),S(7),field),field);
besar_error(5)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(5,1) ,S(1),field),gfconv(Adj(5,2),S(2),field),field),gfconv(Adj(5,3),S( 3),field),field),gfconv(Adj(5,4),S(4),field),field),gfconv(Adj(5,5 ),S(5),field),field),gfconv(Adj(5,6),S(6),field),field),gfconv(Adj (5,7),S(7),field),field);
besar_error(6)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(6,1) ,S(1),field),gfconv(Adj(6,2),S(2),field),field),gfconv(Adj(6,3),S( 3),field),field),gfconv(Adj(6,4),S(4),field),field),gfconv(Adj(6,5 ),S(5),field),field),gfconv(Adj(6,6),S(6),field),field),gfconv(Adj (6,7),S(7),field),field);
Universitas Kristern Maranatha ),S(5),field),field),gfconv(Adj(7,6),S(6),field),field),gfconv(Adj (7,7),S(7),field),field);
else if(length(akar_polinomial)==8)
besar_error(1)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Ad j(1,1),S(1),field),gfconv(Adj(1,2),S(2),field),field),gfconv(Adj(1 ,3),S(3),field),field),gfconv(Adj(1,4),S(4),field),field),gfconv(A dj(1,5),S(5),field),field),gfconv(Adj(1,6),S(6),field),field),gfco nv(Adj(1,7),S(7),field),field),gfconv(Adj(1,8),S(8),field),field);
besar_error(2)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Ad j(2,1),S(1),field),gfconv(Adj(2,2),S(2),field),field),gfconv(Adj(2 ,3),S(3),field),field),gfconv(Adj(2,4),S(4),field),field),gfconv(A dj(2,5),S(5),field),field),gfconv(Adj(2,6),S(6),field),field),gfco nv(Adj(2,7),S(7),field),field),gfconv(Adj(2,8),S(8),field),field);
besar_error(3)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Ad j(3,1),S(1),field),gfconv(Adj(3,2),S(2),field),field),gfconv(Adj(3 ,3),S(3),field),field),gfconv(Adj(3,4),S(4),field),field),gfconv(A dj(3,5),S(5),field),field),gfconv(Adj(3,6),S(6),field),field),gfco nv(Adj(3,7),S(7),field),field),gfconv(Adj(3,8),S(8),field),field);
besar_error(4)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Ad j(4,1),S(1),field),gfconv(Adj(4,2),S(2),field),field),gfconv(Adj(4 ,3),S(3),field),field),gfconv(Adj(4,4),S(4),field),field),gfconv(A dj(4,5),S(5),field),field),gfconv(Adj(4,6),S(6),field),field),gfco nv(Adj(4,7),S(7),field),field),gfconv(Adj(4,8),S(8),field),field);
besar_error(5)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Ad j(5,1),S(1),field),gfconv(Adj(5,2),S(2),field),field),gfconv(Adj(5 ,3),S(3),field),field),gfconv(Adj(5,4),S(4),field),field),gfconv(A dj(5,5),S(5),field),field),gfconv(Adj(5,6),S(6),field),field),gfco nv(Adj(5,7),S(7),field),field),gfconv(Adj(5,8),S(8),field),field);
besar_error(6)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Ad j(6,1),S(1),field),gfconv(Adj(6,2),S(2),field),field),gfconv(Adj(6 ,3),S(3),field),field),gfconv(Adj(6,4),S(4),field),field),gfconv(A dj(6,5),S(5),field),field),gfconv(Adj(6,6),S(6),field),field),gfco nv(Adj(6,7),S(7),field),field),gfconv(Adj(6,8),S(8),field),field);
besar_error(7)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Ad j(7,1),S(1),field),gfconv(Adj(7,2),S(2),field),field),gfconv(Adj(7 ,3),S(3),field),field),gfconv(Adj(7,4),S(4),field),field),gfconv(A dj(7,5),S(5),field),field),gfconv(Adj(7,6),S(6),field),field),gfco nv(Adj(7,7),S(7),field),field),gfconv(Adj(7,8),S(8),field),field);
besar_error(8)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Ad j(8,1),S(1),field),gfconv(Adj(8,2),S(2),field),field),gfconv(Adj(8 ,3),S(3),field),field),gfconv(Adj(8,4),S(4),field),field),gfconv(A dj(8,5),S(5),field),field),gfconv(Adj(8,6),S(6),field),field),gfco nv(Adj(8,7),S(7),field),field),gfconv(Adj(8,8),S(8),field),field); end
Universitas Kristern Maranatha end
end end
%Menyusun polinomial error sesuai lokasi dan error magnitude for ii = 1:n
ERR_p(ii) = -Inf; end
for ii = 1:length(lokasi_error) pp = lokasi_error(ii);
ERR_p(pp+1) = besar_error(ii); end
% kode RS yang diterima lalu dijumlahkan dengan polinomial error
% untuk mendapatkan kode RS yang sama dengan yg dikirim message = gfadd(received,ERR_p,field);
end
DECODED = message;
%*Subroutine mencari error locator polynomial dgn algoritma PGZ**% function sigma= PGZ(n,k,t,S,field)
%Menyusun matriks sindrom c=0;
for i = 1:t for j = 1:t
M(i,j)=S(j+c); end
c=c+1; end
for i = 1:n
Kappa(1,i) = -Inf; end
Kappa(1,1)=0;
%******************************* if (t==1)
Sigma(1) = gfdeconv(S(2),S(1),field); Kappa(1,2)=Sigma(1);
elseif(t==2)
%Hitung nilai determinan matriks 2x2 determinan = deter(M,field);
if (determinan==-inf)
Sigma(1)=gfdeconv(S(2),S(1),field); Kappa(1,2)=Sigma(1);
else
%****mencari nilai invers matriks sindrom****% kofaktor=kof(M,S,field);
Adj=kofaktor'; %adjoin adalah tranpose kofaktornya mydets=abs(determinan);
Universitas Kristern Maranatha Adj(1,1)=gfdeconv(Adj(1,1),mydets,field);
Adj(2,2)=gfdeconv(Adj(2,2),mydets,field); Adj(1,2)=gfdeconv(Adj(1,2),mydets,field);
Adj(2,1)=gfdeconv(Adj(2,1),mydets,field);
Sigma(2)=gfadd(gfconv(Adj(1,1),S(3),field),gfconv(Adj(1,2),S(4),fi eld),field);
Sigma(1)=gfadd(gfconv(Adj(2,1),S(3),field),gfconv(Adj(2,2),S(4),fi eld),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); end
elseif(t==3)
%hitung nilai determinan 3x3 determinan = deter(M,field); if(determinan==-inf)
[n,m]=size(M); n1=n-1;
m1=m-1;
B=zeros(2,2); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end M=B; %Matriks 2x2
determinan=deter(M,field);
if(determinan==-inf)
Sigma(1)=gfdeconv(S(2),S(1),field); Kappa(1,2)=Sigma(1);
else
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan);
Adj(1,1)=gfdeconv(Adj(1,1),mydets,field); Adj(2,2)=gfdeconv(Adj(2,2),mydets,field); Adj(1,2)=gfdeconv(Adj(1,2),mydets,field);
Adj(2,1)=gfdeconv(Adj(2,1),mydets,field); Sigma(2)=gfadd(gfconv(Adj(1,1),S(3),field),gfconv(Adj(1,2),S(4),fi
eld),field);
Sigma(1)=gfadd(gfconv(Adj(2,1),S(3),field),gfconv(Adj(2,2),S(4),fi eld),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); end else
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:3
for d=1:3
Universitas Kristern Maranatha end
Sigma(3)=gfadd(gfadd(gfconv(Adj(1,1),S(4),field),gfconv(Adj(1,2),S (5),field),field),gfconv(Adj(1,3),S(6),field),field);
Sigma(2)=gfadd(gfadd(gfconv(Adj(2,1),S(4),field),gfconv(Adj(2,2),S (5),field),field),gfconv(Adj(2,3),S(6),field),field);
Sigma(1)=gfadd(gfadd(gfconv(Adj(3,1),S(4),field),gfconv(Adj(3,2),S (5),field),field),gfconv(Adj(3,3),S(6),field),field); Kappa(1,2)=Sigma(1);
Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); end
elseif(t==4)
%hitung nilai determinan 4x4 determinan = deter(M,field); if(determinan==-inf)
[n,m]=size(M); n1=n-1;
m1=m-1;
B=zeros(3,3); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end M=B;
determinan=deter(M,field); if(determinan==-inf) [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(2,2); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end M=B; %Matrik 2x2
determinan=deter(M,field);
if(determinan==-inf) Sigma(1)=gfdeconv(S(2),S(1),field); Kappa(1,2)=Sigma(1);
else
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan);
Adj(1,1)=gfdeconv(Adj(1,1),mydets,field); Adj(2,2)=gfdeconv(Adj(2,2),mydets,field); Adj(1,2)=gfdeconv(Adj(1,2),mydets,field);
Adj(2,1)=gfdeconv(Adj(2,1),mydets,field); Sigma(2)=gfadd(gfconv(Adj(1,1),S(3),field),gfconv(Adj(1,2),S(4),fi
Universitas Kristern Maranatha Sigma(1)=gfadd(gfconv(Adj(2,1),S(3),field),gfconv(Adj(2,2),S(4),fi eld),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); end
else
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:3
for d=1:3
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(3)=gfadd(gfadd(gfconv(Adj(1,1),S(4),field),gfconv(Adj(1,2),S (5),field),field),gfconv(Adj(1,3),S(6),field),field);
Sigma(2)=gfadd(gfadd(gfconv(Adj(2,1),S(4),field),gfconv(Adj(2,2),S (5),field),field),gfconv(Adj(2,3),S(6),field),field);
Sigma(1)=gfadd(gfadd(gfconv(Adj(3,1),S(4),field),gfconv(Adj(3,2),S (5),field),field),gfconv(Adj(3,3),S(6),field),field); Kappa(1,2)=Sigma(1);
Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); end else
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:4
for d=1:4
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(4)=gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(5),field),gfconv(Adj( 1,2),S(6),field),field),gfconv(Adj(1,3),S(7),field),field),gfconv( Adj(1,4),S(8),field),field);
Sigma(3)=gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(5),field),gfconv(Adj( 2,2),S(6),field),field),gfconv(Adj(2,3),S(7),field),field),gfconv( Adj(2,4),S(8),field),field);
Sigma(2)=gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(5),field),gfconv(Adj( 3,2),S(6),field),field),gfconv(Adj(3,3),S(7),field),field),gfconv( Adj(3,4),S(8),field),field);
Sigma(1)=gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(5),field),gfconv(Adj( 4,2),S(6),field),field),gfconv(Adj(4,3),S(7),field),field),gfconv( Adj(4,4),S(8),field),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); end
Universitas Kristern Maranatha elseif(t==5)
%hitung nilai determinan 5x5 determinan = deter(M,field);
if(determinan==-inf) %Ubah jadi matriks 4x4 [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(4,4); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end
M=B;
determinan=deter(M,field); if(determinan==-inf) [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(3,3); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end M=B;
%Matrik 2x2
determinan=deter(M,field); if(determinan==-inf)
[n,m]=size(M); n1=n-1;
m1=m-1;
B=zeros(2,2); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end M=B;
determinan=deter(M,field); if(determinan==-inf)
Sigma(1)=gfdeconv(S(2),S(1),field); Kappa(1,2)=Sigma(1); else %terdapat 2 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan);
Adj(1,1)=gfdeconv(Adj(1,1),mydets,field); Adj(2,2)=gfdeconv(Adj(2,2),mydets,field); Adj(1,2)=gfdeconv(Adj(1,2),mydets,field);
Adj(2,1)=gfdeconv(Adj(2,1),mydets,field); Sigma(2)=gfadd(gfconv(Adj(1,1),S(3),field),gfconv(Adj(1,2),S(4),fi
eld),field);
Sigma(1)=gfadd(gfconv(Adj(2,1),S(3),field),gfconv(Adj(2,2),S(4),fi eld),field);
Universitas Kristern Maranatha Kappa(1,3)=Sigma(2);
end
else %terdapat 3 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:3
for d=1:3
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(3)=gfadd(gfadd(gfconv(Adj(1,1),S(4),field),gfconv(Adj(1,2),S (5),field),field),gfconv(Adj(1,3),S(6),field),field);
Sigma(2)=gfadd(gfadd(gfconv(Adj(2,1),S(4),field),gfconv(Adj(2,2),S (5),field),field),gfconv(Adj(2,3),S(6),field),field);
Sigma(1)=gfadd(gfadd(gfconv(Adj(3,1),S(4),field),gfconv(Adj(3,2),S (5),field),field),gfconv(Adj(3,3),S(6),field),field); Kappa(1,2)=Sigma(1);
Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); end
else %terdapat 4 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:4
for d=1:4
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(4)=gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(5),field),gfconv(Adj( 1,2),S(6),field),field),gfconv(Adj(1,3),S(7),field),field),gfconv( Adj(1,4),S(8),field),field);
Sigma(3)=gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(5),field),gfconv(Adj( 2,2),S(6),field),field),gfconv(Adj(2,3),S(7),field),field),gfconv( Adj(2,4),S(8),field),field);
Sigma(2)=gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(5),field),gfconv(Adj( 3,2),S(6),field),field),gfconv(Adj(3,3),S(7),field),field),gfconv( Adj(3,4),S(8),field),field);
Sigma(1)=gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(5),field),gfconv(Adj( 4,2),S(6),field),field),gfconv(Adj(4,3),S(7),field),field),gfconv( Adj(4,4),S(8),field),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); end
else %terdapat 5 error kofaktor=kof(M,S,field); Adj=kofaktor';
Universitas Kristern Maranatha for a=1:5
for d=1:5
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(5)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(6),field),gfcon v(Adj(1,2),S(7),field),field),gfconv(Adj(1,3),S(8),field),field),g fconv(Adj(1,4),S(9),field),field),gfconv(Adj(1,5),S(10),field),fie ld);
Sigma(4)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(6),field),gfcon v(Adj(2,2),S(7),field),field),gfconv(Adj(2,3),S(8),field),field),g fconv(Adj(2,4),S(9),field),field),gfconv(Adj(2,5),S(10),field),fie ld);
Sigma(3)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(6),field),gfcon v(Adj(3,2),S(7),field),field),gfconv(Adj(3,3),S(8),field),field),g fconv(Adj(3,4),S(9),field),field),gfconv(Adj(3,5),S(10),field),fie ld);
Sigma(2)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(6),field),gfcon v(Adj(4,2),S(7),field),field),gfconv(Adj(4,3),S(8),field),field),g fconv(Adj(4,4),S(9),field),field),gfconv(Adj(4,5),S(10),field),fie ld);
Sigma(1)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(5,1),S(6),field),gfcon v(Adj(5,2),S(7),field),field),gfconv(Adj(5,3),S(8),field),field),g fconv(Adj(5,4),S(9),field),field),gfconv(Adj(5,5),S(10),field),fie ld);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); Kappa(1,6)=Sigma(5); end
elseif(t==6)
determinan = deter(M,field);
if(determinan==-inf) %Ubah jadi matriks 5x5 [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(5,5); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end M=B;
determinan=deter(M,field); if(determinan==-inf) [n,m]=size(M);
n1=n-1; m1=m-1;
Universitas Kristern Maranatha for j=1:m1
B(i,j)=M(i,j); end
end M=B;
%Matrik 3x3
determinan=deter(M,field); if(determinan==-inf)
[n,m]=size(M); n1=n-1;
m1=m-1;
B=zeros(3,3); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end
if(determinan==-inf) [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(2,2); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end
M=B;
determinan=deter(M,field);
if(determinan==-inf) %hanya terdapat 1 error Sigma(1)=gfdeconv(S(2),S(1),field);
Kappa(1,2)=Sigma(1);
\
else %terdapat 2 errorkofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan);
Adj(1,1)=gfdeconv(Adj(1,1),mydets,field); Adj(2,2)=gfdeconv(Adj(2,2),mydets,field); Adj(1,2)=gfdeconv(Adj(1,2),mydets,field); Adj(2,1)=gfdeconv(Adj(2,1),mydets,field);
Sigma(2)=gfadd(gfconv(Adj(1,1),S(3),field),gfconv(Adj(1,2),S(4),fi eld),field);
Sigma(1)=gfadd(gfconv(Adj(2,1),S(3),field),gfconv(Adj(2,2),S(4),fi eld),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); end
else %terdapat 3 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:3
for d=1:3
Universitas Kristern Maranatha end
end
Sigma(3)=gfadd(gfadd(gfconv(Adj(1,1),S(4),field),gfconv(Adj(1,2),S (5),field),field),gfconv(Adj(1,3),S(6),field),field);
Sigma(2)=gfadd(gfadd(gfconv(Adj(2,1),S(4),field),gfconv(Adj(2,2),S (5),field),field),gfconv(Adj(2,3),S(6),field),field);
Sigma(1)=gfadd(gfadd(gfconv(Adj(3,1),S(4),field),gfconv(Adj(3,2),S (5),field),field),gfconv(Adj(3,3),S(6),field),field); Kappa(1,2)=Sigma(1);
Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); end
else %terdapat 4 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:4
for d=1:4
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(4)=gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(5),field),gfconv(Adj( 1,2),S(6),field),field),gfconv(Adj(1,3),S(7),field),field),gfconv( Adj(1,4),S(8),field),field);
Sigma(3)=gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(5),field),gfconv(Adj( 2,2),S(6),field),field),gfconv(Adj(2,3),S(7),field),field),gfconv( Adj(2,4),S(8),field),field);
Sigma(2)=gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(5),field),gfconv(Adj( 3,2),S(6),field),field),gfconv(Adj(3,3),S(7),field),field),gfconv( Adj(3,4),S(8),field),field);
Sigma(1)=gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(5),field),gfconv(Adj( 4,2),S(6),field),field),gfconv(Adj(4,3),S(7),field),field),gfconv( Adj(4,4),S(8),field),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); end
else %terdapat 5 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:5
for d=1:5
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Universitas Kristern Maranatha
Sigma(4)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(6),field),gfcon v(Adj(2,2),S(7),field),field),gfconv(Adj(2,3),S(8),field),field),g fconv(Adj(2,4),S(9),field),field),gfconv(Adj(2,5),S(10),field),fie ld);
Sigma(3)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(6),field),gfcon v(Adj(3,2),S(7),field),field),gfconv(Adj(3,3),S(8),field),field),g fconv(Adj(3,4),S(9),field),field),gfconv(Adj(3,5),S(10),field),fie ld);
Sigma(2)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(6),field),gfcon v(Adj(4,2),S(7),field),field),gfconv(Adj(4,3),S(8),field),field),g fconv(Adj(4,4),S(9),field),field),gfconv(Adj(4,5),S(10),field),fie ld);
Sigma(1)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(5,1),S(6),field),gfcon v(Adj(5,2),S(7),field),field),gfconv(Adj(5,3),S(8),field),field),g fconv(Adj(5,4),S(9),field),field),gfconv(Adj(5,5),S(10),field),fie ld);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); Kappa(1,6)=Sigma(5);
end else %terdapat 6 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:6
for d=1:6
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(6)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(7),field) ,gfconv(Adj(1,2),S(8),field),field),gfconv(Adj(1,3),S(9),field),fi eld),gfconv(Adj(1,4),S(10),field),field),gfconv(Adj(1,5),S(11),fie ld),field),gfconv(Adj(1,6),S(12),field),field);
Sigma(5)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(7),field) ,gfconv(Adj(2,2),S(8),field),field),gfconv(Adj(2,3),S(9),field),fi eld),gfconv(Adj(2,4),S(10),field),field),gfconv(Adj(2,5),S(11),fie ld),field),gfconv(Adj(2,6),S(12),field),field);
Sigma(4)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(7),field) ,gfconv(Adj(3,2),S(8),field),field),gfconv(Adj(3,3),S(9),field),fi eld),gfconv(Adj(3,4),S(10),field),field),gfconv(Adj(3,5),S(11),fie ld),field),gfconv(Adj(3,6),S(12),field),field);
Sigma(3)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(7),field) ,gfconv(Adj(4,2),S(8),field),field),gfconv(Adj(4,3),S(9),field),fi eld),gfconv(Adj(4,4),S(10),field),field),gfconv(Adj(4,5),S(11),fie ld),field),gfconv(Adj(4,6),S(12),field),field);
Universitas Kristern Maranatha ,gfconv(Adj(5,2),S(8),field),field),gfconv(Adj(5,3),S(9),field),fi eld),gfconv(Adj(5,4),S(10),field),field),gfconv(Adj(5,5),S(11),fie ld),field),gfconv(Adj(5,6),S(12),field),field);
Sigma(1)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(6,1),S(7),field) ,gfconv(Adj(6,2),S(8),field),field),gfconv(Adj(6,3),S(9),field),fi eld),gfconv(Adj(6,4),S(10),field),field),gfconv(Adj(6,5),S(11),fie ld),field),gfconv(Adj(6,6),S(12),field),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); Kappa(1,6)=Sigma(5); Kappa(1,7)=Sigma(6); end
elseif(t==7)
determinan = deter(M,field);
if(determinan==-inf) %Ubah jadi matriks 6x6 [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(6,6); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end M=B;
determinan=deter(M,field); if(determinan==-inf) [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(5,5); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end M=B;
%Matrik 4x4
determinan=deter(M,field); if(determinan==-inf)
[n,m]=size(M); n1=n-1;
m1=m-1;
B=zeros(4,4); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end
M=B;
determinan=deter(M,field);
Universitas Kristern Maranatha [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(3,3); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end
M=B;
determinan=deter(M,field);
if(determinan==-inf) %ubah jadi matrik 2x2 [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(2,2); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end
M=B;
determinan=deter(M,field); if(determinan==-inf) %hanya terdapat 1 error
Sigma(1)=gfdeconv(S(2),S(1),field);%Hanya 1 error yg terjadi
Kappa(1,2)=Sigma(1); else %terdapat 2 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan);
Adj(1,1)=gfdeconv(Adj(1,1),mydets,field); Adj(2,2)=gfdeconv(Adj(2,2),mydets,field); Adj(1,2)=gfdeconv(Adj(1,2),mydets,field); Adj(2,1)=gfdeconv(Adj(2,1),mydets,field);
Sigma(2)=gfadd(gfconv(Adj(1,1),S(3),field),gfconv(Adj(1,2),S(4),fi eld),field);
Sigma(1)=gfadd(gfconv(Adj(2,1),S(3),field),gfconv(Adj(2,2),S(4),fi eld),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); end
else %terdapat 3 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:3
for d=1:3
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(3)=gfadd(gfadd(gfconv(Adj(1,1),S(4),field),gfconv(Adj(1,2),S (5),field),field),gfconv(Adj(1,3),S(6),field),field);
Universitas Kristern Maranatha
Sigma(1)=gfadd(gfadd(gfconv(Adj(3,1),S(4),field),gfconv(Adj(3,2),S (5),field),field),gfconv(Adj(3,3),S(6),field),field); Kappa(1,2)=Sigma(1);
Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); end
else %terdapat 4 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:4
for d=1:4
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(4)=gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(5),field),gfconv(Adj( 1,2),S(6),field),field),gfconv(Adj(1,3),S(7),field),field),gfconv( Adj(1,4),S(8),field),field);
Sigma(3)=gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(5),field),gfconv(Adj( 2,2),S(6),field),field),gfconv(Adj(2,3),S(7),field),field),gfconv( Adj(2,4),S(8),field),field);
Sigma(2)=gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(5),field),gfconv(Adj( 3,2),S(6),field),field),gfconv(Adj(3,3),S(7),field),field),gfconv( Adj(3,4),S(8),field),field);
Sigma(1)=gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(5),field),gfconv(Adj( 4,2),S(6),field),field),gfconv(Adj(4,3),S(7),field),field),gfconv( Adj(4,4),S(8),field),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); end
else %terdapat 5 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:5
for d=1:5
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(5)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(6),field),gfcon v(Adj(1,2),S(7),field),field),gfconv(Adj(1,3),S(8),field),field),g fconv(Adj(1,4),S(9),field),field),gfconv(Adj(1,5),S(10),field),fie ld);
Sigma(4)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(6),field),gfcon v(Adj(2,2),S(7),field),field),gfconv(Adj(2,3),S(8),field),field),g fconv(Adj(2,4),S(9),field),field),gfconv(Adj(2,5),S(10),field),fie ld);
Universitas Kristern Maranatha v(Adj(3,2),S(7),field),field),gfconv(Adj(3,3),S(8),field),field),g fconv(Adj(3,4),S(9),field),field),gfconv(Adj(3,5),S(10),field),fie ld);
Sigma(2)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(6),field),gfcon v(Adj(4,2),S(7),field),field),gfconv(Adj(4,3),S(8),field),field),g fconv(Adj(4,4),S(9),field),field),gfconv(Adj(4,5),S(10),field),fie ld);
Sigma(1)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(5,1),S(6),field),gfcon v(Adj(5,2),S(7),field),field),gfconv(Adj(5,3),S(8),field),field),g fconv(Adj(5,4),S(9),field),field),gfconv(Adj(5,5),S(10),field),fie ld);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); Kappa(1,6)=Sigma(5); end
else %terdapat 6 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:6
for d=1:6
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(6)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(7),field) ,gfconv(Adj(1,2),S(8),field),field),gfconv(Adj(1,3),S(9),field),fi eld),gfconv(Adj(1,4),S(10),field),field),gfconv(Adj(1,5),S(11),fie ld),field),gfconv(Adj(1,6),S(12),field),field);
Sigma(5)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(7),field) ,gfconv(Adj(2,2),S(8),field),field),gfconv(Adj(2,3),S(9),field),fi eld),gfconv(Adj(2,4),S(10),field),field),gfconv(Adj(2,5),S(11),fie ld),field),gfconv(Adj(2,6),S(12),field),field);
Sigma(4)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(7),field) ,gfconv(Adj(3,2),S(8),field),field),gfconv(Adj(3,3),S(9),field),fi eld),gfconv(Adj(3,4),S(10),field),field),gfconv(Adj(3,5),S(11),fie ld),field),gfconv(Adj(3,6),S(12),field),field);
Sigma(3)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(7),field) ,gfconv(Adj(4,2),S(8),field),field),gfconv(Adj(4,3),S(9),field),fi eld),gfconv(Adj(4,4),S(10),field),field),gfconv(Adj(4,5),S(11),fie ld),field),gfconv(Adj(4,6),S(12),field),field);
Sigma(2)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(5,1),S(7),field) ,gfconv(Adj(5,2),S(8),field),field),gfconv(Adj(5,3),S(9),field),fi eld),gfconv(Adj(5,4),S(10),field),field),gfconv(Adj(5,5),S(11),fie ld),field),gfconv(Adj(5,6),S(12),field),field);
Universitas Kristern Maranatha eld),gfconv(Adj(6,4),S(10),field),field),gfconv(Adj(6,5),S(11),fie ld),field),gfconv(Adj(6,6),S(12),field),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); Kappa(1,6)=Sigma(5); Kappa(1,7)=Sigma(6); end
else %terdapat 7 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:7
for d=1:7
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(7)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(8), field),gfconv(Adj(1,2),S(9),field),field),gfconv(Adj(1,3),S(10),fi eld),field),gfconv(Adj(1,4),S(11),field),field),gfconv(Adj(1,5),S( 12),field),field),gfconv(Adj(1,6),S(13),field),field),gfconv(Adj(1 ,7),S(14),field),field);
Sigma(6)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(8), field),gfconv(Adj(2,2),S(9),field),field),gfconv(Adj(2,3),S(10),fi eld),field),gfconv(Adj(2,4),S(11),field),field),gfconv(Adj(2,5),S( 12),field),field),gfconv(Adj(2,6),S(13),field),field),gfconv(Adj(2 ,7),S(14),field),field);
Sigma(5)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(8), field),gfconv(Adj(3,2),S(9),field),field),gfconv(Adj(3,3),S(10),fi eld),field),gfconv(Adj(3,4),S(11),field),field),gfconv(Adj(3,5),S( 12),field),field),gfconv(Adj(3,6),S(13),field),field),gfconv(Adj(3 ,7),S(14),field),field);
Sigma(4)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(8), field),gfconv(Adj(4,2),S(9),field),field),gfconv(Adj(4,3),S(10),fi eld),field),gfconv(Adj(4,4),S(11),field),field),gfconv(Adj(4,5),S( 12),field),field),gfconv(Adj(4,6),S(13),field),field),gfconv(Adj(4 ,7),S(14),field),field);
Sigma(3)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(5,1),S(8), field),gfconv(Adj(5,2),S(9),field),field),gfconv(Adj(5,3),S(10),fi eld),field),gfconv(Adj(5,4),S(11),field),field),gfconv(Adj(5,5),S( 12),field),field),gfconv(Adj(5,6),S(13),field),field),gfconv(Adj(5 ,7),S(14),field),field);
Sigma(2)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(6,1),S(8), field),gfconv(Adj(6,2),S(9),field),field),gfconv(Adj(6,3),S(10),fi eld),field),gfconv(Adj(6,4),S(11),field),field),gfconv(Adj(6,5),S( 12),field),field),gfconv(Adj(6,6),S(13),field),field),gfconv(Adj(6 ,7),S(14),field),field);
Universitas Kristern Maranatha 12),field),field),gfconv(Adj(7,6),S(13),field),field),gfconv(Adj(7 ,7),S(14),field),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); Kappa(1,6)=Sigma(5); Kappa(1,7)=Sigma(6); Kappa(1,8)=Sigma(7); end
elseif(t==8)
%hitung nilai determinan 8x8 determinan = deter(M,field);
if(determinan==-inf) %Ubah jadi matriks 7x7 [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(7,7); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end
M=B;
determinan=deter(M,field); if(determinan==-inf) [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(6,6); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end M=B;
%Matrik 5x5
determinan=deter(M,field); if(determinan==-inf)
[n,m]=size(M); n1=n-1;
m1=m-1;
B=zeros(5,5); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end
M=B;
determinan=deter(M,field);
if(determinan==-inf) %ubah jadi matrik 4x4 [n,m]=size(M);
n1=n-1; m1=m-1;
Universitas Kristern Maranatha for i=1:n1
for j=1:m1
B(i,j)=M(i,j); end
end
M=B;
determinan=deter(M,field);
if(determinan==-inf) %ubah jadi matrik 3x3 [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(3,3); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end
M=B;
determinan=deter(M,field);
if(determinan==-inf) %ubah jadi matrik 2x2 [n,m]=size(M);
n1=n-1; m1=m-1;
B=zeros(2,2); for i=1:n1 for j=1:m1
B(i,j)=M(i,j); end
end
M=B;
determinan=deter(M,field); if(determinan==-inf) %hanya terdapat 1 error
Sigma(1)=gfdeconv(S(2),S(1),field);%Hanya 1 error yg terjadi
Kappa(1,2)=Sigma(1);
else %terdapat 2 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan);
Adj(1,1)=gfdeconv(Adj(1,1),mydets,field); Adj(2,2)=gfdeconv(Adj(2,2),mydets,field); Adj(1,2)=gfdeconv(Adj(1,2),mydets,field); Adj(2,1)=gfdeconv(Adj(2,1),mydets,field);
Sigma(2)=gfadd(gfconv(Adj(1,1),S(3),field),gfconv(Adj(1,2),S(4),fi eld),field);
Sigma(1)=gfadd(gfconv(Adj(2,1),S(3),field),gfconv(Adj(2,2),S(4),fi eld),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); end
else %terdapat 3 error
kofaktor=kof(M,S,field); Adj=kofaktor';
Universitas Kristern Maranatha for d=1:3
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(3)=gfadd(gfadd(gfconv(Adj(1,1),S(4),field),gfconv(Adj(1,2),S (5),field),field),gfconv(Adj(1,3),S(6),field),field);
Sigma(2)=gfadd(gfadd(gfconv(Adj(2,1),S(4),field),gfconv(Adj(2,2),S (5),field),field),gfconv(Adj(2,3),S(6),field),field);
Sigma(1)=gfadd(gfadd(gfconv(Adj(3,1),S(4),field),gfconv(Adj(3,2),S (5),field),field),gfconv(Adj(3,3),S(6),field),field); Kappa(1,2)=Sigma(1);
Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); end
else %terdapat 4 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:4
for d=1:4
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(4)=gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(5),field),gfconv(Adj( 1,2),S(6),field),field),gfconv(Adj(1,3),S(7),field),field),gfconv( Adj(1,4),S(8),field),field);
Sigma(3)=gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(5),field),gfconv(Adj( 2,2),S(6),field),field),gfconv(Adj(2,3),S(7),field),field),gfconv( Adj(2,4),S(8),field),field);
Sigma(2)=gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(5),field),gfconv(Adj( 3,2),S(6),field),field),gfconv(Adj(3,3),S(7),field),field),gfconv( Adj(3,4),S(8),field),field);
Sigma(1)=gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(5),field),gfconv(Adj( 4,2),S(6),field),field),gfconv(Adj(4,3),S(7),field),field),gfconv( Adj(4,4),S(8),field),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); end
else %terdapat 5 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:5
for d=1:5
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Universitas Kristern Maranatha v(Adj(1,2),S(7),field),field),gfconv(Adj(1,3),S(8),field),field),g fconv(Adj(1,4),S(9),field),field),gfconv(Adj(1,5),S(10),field),fie ld);
Sigma(4)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(6),field),gfcon v(Adj(2,2),S(7),field),field),gfconv(Adj(2,3),S(8),field),field),g fconv(Adj(2,4),S(9),field),field),gfconv(Adj(2,5),S(10),field),fie ld);
Sigma(3)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(6),field),gfcon v(Adj(3,2),S(7),field),field),gfconv(Adj(3,3),S(8),field),field),g fconv(Adj(3,4),S(9),field),field),gfconv(Adj(3,5),S(10),field),fie ld);
Sigma(2)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(6),field),gfcon v(Adj(4,2),S(7),field),field),gfconv(Adj(4,3),S(8),field),field),g fconv(Adj(4,4),S(9),field),field),gfconv(Adj(4,5),S(10),field),fie ld);
Sigma(1)=gfadd(gfadd(gfadd(gfadd(gfconv(Adj(5,1),S(6),field),gfcon v(Adj(5,2),S(7),field),field),gfconv(Adj(5,3),S(8),field),field),g fconv(Adj(5,4),S(9),field),field),gfconv(Adj(5,5),S(10),field),fie ld);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); Kappa(1,6)=Sigma(5);
end else %terdapat 6 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:6
for d=1:6
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(6)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(7),field) ,gfconv(Adj(1,2),S(8),field),field),gfconv(Adj(1,3),S(9),field),fi eld),gfconv(Adj(1,4),S(10),field),field),gfconv(Adj(1,5),S(11),fie ld),field),gfconv(Adj(1,6),S(12),field),field);
Sigma(5)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(7),field) ,gfconv(Adj(2,2),S(8),field),field),gfconv(Adj(2,3),S(9),field),fi eld),gfconv(Adj(2,4),S(10),field),field),gfconv(Adj(2,5),S(11),fie ld),field),gfconv(Adj(2,6),S(12),field),field);
Sigma(4)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(7),field) ,gfconv(Adj(3,2),S(8),field),field),gfconv(Adj(3,3),S(9),field),fi eld),gfconv(Adj(3,4),S(10),field),field),gfconv(Adj(3,5),S(11),fie ld),field),gfconv(Adj(3,6),S(12),field),field);
Universitas Kristern Maranatha eld),gfconv(Adj(4,4),S(10),field),field),gfconv(Adj(4,5),S(11),fie ld),field),gfconv(Adj(4,6),S(12),field),field);
Sigma(2)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(5,1),S(7),field) ,gfconv(Adj(5,2),S(8),field),field),gfconv(Adj(5,3),S(9),field),fi eld),gfconv(Adj(5,4),S(10),field),field),gfconv(Adj(5,5),S(11),fie ld),field),gfconv(Adj(5,6),S(12),field),field);
Sigma(1)=gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(6,1),S(7),field) ,gfconv(Adj(6,2),S(8),field),field),gfconv(Adj(6,3),S(9),field),fi eld),gfconv(Adj(6,4),S(10),field),field),gfconv(Adj(6,5),S(11),fie ld),field),gfconv(Adj(6,6),S(12),field),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); Kappa(1,6)=Sigma(5); Kappa(1,7)=Sigma(6); end
else %terdapat 7 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:7
for d=1:7
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(7)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(1,1),S(8), field),gfconv(Adj(1,2),S(9),field),field),gfconv(Adj(1,3),S(10),fi eld),field),gfconv(Adj(1,4),S(11),field),field),gfconv(Adj(1,5),S( 12),field),field),gfconv(Adj(1,6),S(13),field),field),gfconv(Adj(1 ,7),S(14),field),field);
Sigma(6)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1),S(8), field),gfconv(Adj(2,2),S(9),field),field),gfconv(Adj(2,3),S(10),fi eld),field),gfconv(Adj(2,4),S(11),field),field),gfconv(Adj(2,5),S( 12),field),field),gfconv(Adj(2,6),S(13),field),field),gfconv(Adj(2 ,7),S(14),field),field);
Sigma(5)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(3,1),S(8), field),gfconv(Adj(3,2),S(9),field),field),gfconv(Adj(3,3),S(10),fi eld),field),gfconv(Adj(3,4),S(11),field),field),gfconv(Adj(3,5),S( 12),field),field),gfconv(Adj(3,6),S(13),field),field),gfconv(Adj(3 ,7),S(14),field),field);
Sigma(4)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(4,1),S(8), field),gfconv(Adj(4,2),S(9),field),field),gfconv(Adj(4,3),S(10),fi eld),field),gfconv(Adj(4,4),S(11),field),field),gfconv(Adj(4,5),S( 12),field),field),gfconv(Adj(4,6),S(13),field),field),gfconv(Adj(4 ,7),S(14),field),field);
Universitas Kristern Maranatha 12),field),field),gfconv(Adj(5,6),S(13),field),field),gfconv(Adj(5 ,7),S(14),field),field);
Sigma(2)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(6,1),S(8), field),gfconv(Adj(6,2),S(9),field),field),gfconv(Adj(6,3),S(10),fi eld),field),gfconv(Adj(6,4),S(11),field),field),gfconv(Adj(6,5),S( 12),field),field),gfconv(Adj(6,6),S(13),field),field),gfconv(Adj(6 ,7),S(14),field),field);
Sigma(1)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(7,1),S(8), field),gfconv(Adj(7,2),S(9),field),field),gfconv(Adj(7,3),S(10),fi eld),field),gfconv(Adj(7,4),S(11),field),field),gfconv(Adj(7,5),S( 12),field),field),gfconv(Adj(7,6),S(13),field),field),gfconv(Adj(7 ,7),S(14),field),field);
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); Kappa(1,6)=Sigma(5); Kappa(1,7)=Sigma(6); Kappa(1,8)=Sigma(7); end else %terdapat 8 error
kofaktor=kof(M,S,field); Adj=kofaktor';
mydets=abs(determinan); for a=1:8
for d=1:8
Adj(a,d)=gfdeconv(Adj(a,d),mydets,field); end
end
Sigma(8)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(1,1) ,S(9),field),gfconv(Adj(1,2),S(10),field),field),gfconv(Adj(1,3),S (11),field),field),gfconv(Adj(1,4),S(12),field),field),gfconv(Adj( 1,5),S(13),field),field),gfconv(Adj(1,6),S(14),field),field),gfcon v(Adj(1,7),S(15),field),field),gfconv(Adj(1,8),S(16),field),field) ;
Sigma(7)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(2,1) ,S(9),field),gfconv(Adj(2,2),S(10),field),field),gfconv(Adj(2,3),S (11),field),field),gfconv(Adj(2,4),S(12),field),field),gfconv(Adj( 2,5),S(13),field),field),gfconv(Adj(2,6),S(14),field),field),gfcon v(Adj(2,7),S(15),field),field),gfconv(Adj(2,8),S(16),field),field) ;
Sigma(6)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(3,1) ,S(9),field),gfconv(Adj(3,2),S(10),field),field),gfconv(Adj(3,3),S (11),field),field),gfconv(Adj(3,4),S(12),field),field),gfconv(Adj( 3,5),S(13),field),field),gfconv(Adj(3,6),S(14),field),field),gfcon v(Adj(3,7),S(15),field),field),gfconv(Adj(3,8),S(16),field),field) ;
Universitas Kristern Maranatha v(Adj(4,7),S(15),field),field),gfconv(Adj(4,8),S(16),field),field) ;
Sigma(4)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(5,1) ,S(9),field),gfconv(Adj(5,2),S(10),field),field),gfconv(Adj(5,3),S (11),field),field),gfconv(Adj(5,4),S(12),field),field),gfconv(Adj( 5,5),S(13),field),field),gfconv(Adj(5,6),S(14),field),field),gfcon v(Adj(5,7),S(15),field),field),gfconv(Adj(5,8),S(16),field),field) ;
Sigma(3)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(6,1) ,S(9),field),gfconv(Adj(6,2),S(10),field),field),gfconv(Adj(6,3),S (11),field),field),gfconv(Adj(6,4),S(12),field),field),gfconv(Adj( 6,5),S(13),field),field),gfconv(Adj(6,6),S(14),field),field),gfcon v(Adj(6,7),S(15),field),field),gfconv(Adj(6,8),S(16),field),field) ;
Sigma(2)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(7,1) ,S(9),field),gfconv(Adj(7,2),S(10),field),field),gfconv(Adj(7,3),S (11),field),field),gfconv(Adj(7,4),S(12),field),field),gfconv(Adj( 7,5),S(13),field),field),gfconv(Adj(7,6),S(14),field),field),gfcon v(Adj(7,7),S(15),field),field),gfconv(Adj(7,8),S(16),field),field) ;
Sigma(1)=gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfadd(gfconv(Adj(8,1) ,S(9),field),gfconv(Adj(8,2),S(10),field),field),gfconv(Adj(8,3),S (11),field),field),gfconv(Adj(8,4),S(12),field),field),gfconv(Adj( 8,5),S(13),field),field),gfconv(Adj(8,6),S(14),field),field),gfcon v(Adj(8,7),S(15),field),field),gfconv(Adj(8,8),S(16),field),field) ;
Kappa(1,2)=Sigma(1); Kappa(1,3)=Sigma(2); Kappa(1,4)=Sigma(3); Kappa(1,5)=Sigma(4); Kappa(1,6)=Sigma(5); Kappa(1,7)=Sigma(6); Kappa(1,8)=Sigma(7); Kappa(1,9)=Sigma(8);
end end
%Menyusun error locator polynomial for i = 1:n
1
Universitas Kristen MaranathaBAB I
PENDAHULUAN
1.1 Latar Belakang
Pada sistem komunikasi, proses pengiriman data dari sumber ke tujuan
dapat dikatakan baik bila