i+1=M[v],v=M[i+1],M:
[i+1] then :
,M;
}: ile T={} and kn do
and kn then i+1],M:
,M; d T{} then
i+1],M:
,M; d T={} then
,u,[w,M]; us {i}:
,M;
ukarRi,m,[w,M];
i+1=M[v],v=M[i+1],M: m:=m-1:
M:=subsop v:=v-1:
k:=i+1: if i in M
S:=M[i+1] minus {i} for j in S do
M:=GantiBi,j end do:
else T:={
for j wh T:=M[k+1] intersect {i}:
k:=k+1: end do:
if ki+1 M:=subsopi+1=M[k],k=M[
S:=M[i+1] minus {i}: for j in S do
M:=GantiBi,j end do:
elif k=n an M:=subsopi+1=M[k],k=M[
S:=M[i+1] minus {i}: for j in S do
M:=GantiBi,j end do:
elif k=n an u:=maxopM[i+1]:
if ui then N:=TukarRi
M:=op2,N: S:=M[i+1] min
for j in S do M:=GantiBi,j
end do: else
N:=T M:=op2,N:
m:=m-1: M:=subsop
v:=v-1: end if:
,M];
2.10 AddMtx menjumlahkan dua matriks.
er: : n:=nopsB:
d if:
.2.11 DotV menentukan produk titik dua vektor
T mod 2;
2.12 MultMtx
mengalikan matriks kolom dengan matriks kolom
m,n,i,j,k,p::integer: :=nopsB:
if:
om 1 to p do om 1 to m do
-1}:
,S] end if:
end if: end if:
end if: end if:
end do: return[w
end proc:
1.
AddMtx:=procM::list,N::list local A,B,H::list, m,n::integ
A:=op2,M: B:=op2,N: m:=op1,M if mop1,N or nopsAn then returnfalse en
H:=[seqAddVA[i],B[i],i=1..n]: return[m,H];
end proc:
1
DotV:=procS::set,T::set local C::integer:
C:=nopsS intersect returnC;
end proc:
1.
MultMtx:=procM::list,N::list local TA,A,B,H::list, S::set,
A:=op2,M: B:=op2,N: m:=op1,M: n:=op1,N: p
if nnopsA then returnfalse end TA:=op2,TrpsCM:
H:=[]: for i fr
S:={}: for j fr
k:=DotVTA[j],B[i]: if k=1 then
S:={opS,j end if:
end do: H:=[opH
,H];
2.13 InkodG mengkoding vektor pesan P menjadi vektor katakode C
Inkod ,p::integer:
P]]:
2.14 ParG menentukan vektor paritas X dari vektor pesan P menggunakan
enjadi
r C = P|X a
ParG: er:
-1}:
;
.2.15 InkodS mengkoding vektor pesan P menjadi vektor katakode C
m hal ini P
InkodS:=procP::set,B::list,k::posint
+i-1}: end do:
return[m end proc:
1.
menggunakan matriks generator umum G berordo kxn.
G:=procP::set,G::list local A,B,C::list, H::set, k
k:=op1,G: A:=TrpsC[k,[
B:=MultMtxA,G: C:=TrpsCB:
H:=opC[2]: returnH;
end proc:
1.
matriks generator bentuk standar dalam hal ini P dan B m
input, dan X adalah output. Vekto dalah katakode dari pesan P.
=procP::set,B::list local S::set, r,i,s::integ
r:= nopsB: S:={}: for i from 1 to r do
s:=DotVP,B[i]: if s=1 then
S:={opS,i end if:
end do: returnS
end proc:
1
menggunakan matriks generator bentuk standar dala
dan B menjadi input
local S::set, r,i,s::integer: r:= nopsB: S:=P:
for i from 1 to r do s:=DotVP,B[i]:
if s=1 then S:={opS,k
;
2.16 HmDist menentukan jarak Hamming dua vektor
;
2.17 NonZeroWt menentukan bobot tak-nol dari suatu kode yang
NonZe ,k::integer:
Wt:={}: o
}: ;
.3 Pendefinisian Prosedur yang digunakan untuk konstruksi Kode Optimal
.
1.3.1
ombinM menentukan list semua kombinasi j vektor dari vektor-vektor M
Kombi i,k::integer:
,j: N do
S do end if:
end do: returnS
end proc:
1.
HmDist:=procS::set,T::set local C::set:
C:=AddVS,T; returnnopsC
end proc:
1.
direpresentasikan oleh matriks generator G.
roWt:=procB::list local Wt,C,P::set, i,r,m
k:=B[1]: m:=2k-1:
for i from 1 to m d P:=UbahDesKeSeti;
C:=InkodSP,B[2],k; r:=nopsC:
Wt:={opWt,r end do:
returnWt end proc:
1
Diberikan matriks generator bentuk standar Misalkan M adalah
matriks representasi vektor baris dari B.
K representasi baris untuk suatu nilai j = 1,2,…,k.
nM:=procj::posint,M::list local S,C,L,K,N::set, W::list,
K:= M[1]: k:=nopsK: L:={seqi,i=1..k}:
N:=combinat[choose]L W:=[]:
for S in C:={}:
for i in