BAB IV ALGORITMA DAN IMPLEMENTASI
4.1 Algoritma
Algoritma merupakan langkah-langkah terstruktur dalam menyelesaikan suatu masalah. Berikut ini merupakan algoritma yang digunakan dalam program ini.
4.1.1 Algoritma Menghitung Determinan Matriks 2 × 2
Input Nilai Matrix Set A = Matrix1, 1;Set B = Matrix1, 2
Set C = Matrix2, 1;Set d = Matrix2, 2 Det22 = A d - B C
4.1.2 Algoritma Menghitung Determinan Matriks 3 × 3
Input Nilai Matrix Set A11 = Matrix1, 1;Set A12 = Matrix1, 2
Set A13 = Matrix1, 3;Set A21 = Matrix2, 1 Set A22 = Matrix2, 2;Set A23 = Matrix2, 3
Set A31 = Matrix3, 1;Set A32 = Matrix3, 2 Set A33 = Matrix3, 3
Det33 = A11 A22 A33 + A12 A23 A31 + A13 A21 A32 - A31 A22 A13 - A32 A23 A11 - A33
A21 A12
4.1.3 Algoritma Perkalian Matriks
Y1 = 0: X1 = 0: Y2 = 0: X2 = 0 Y1 = UBoundA, 1
X1 = UBoundA, 2 Y2 = UBoundB, 1
X2 = UBoundB, 2
Universitas Sumatera Utara
If X1 Y2 Then Tampilkan Pesan Matriks Tidak Bisa Dikalikan X1Y2
Exit End If
For IX2 = 1 To X2 For IY1 = 1 To Y1
For IX1 = 1 To X1 CIY1, IX2 = CIY1, IX2 + AIY1, IX1 BIX1, IX2
Next IX1 Next IY1
Next IX2
4.1.4 Algoritma Invers Matriks
Y1 = 0: X1 = 0: Y2 = 0: X2 = 0 Y1 = UBoundC, 1
X1 = UBoundC, 2 If Y1 X1 Then
Tampilkan Pesan Matriks Tidak Bisa Di-Invers. Y1X1 Exit
End If For IY1 = 1 To Y1
For IX1 = 1 To X1 DUMMYMATIY1, IX1 = CIY1, IX1
CIY1, IX1 = 0 If IY1 = IX1 Then
CIY1, IX1 = 1 Else
CIY1, IX1 = 0 End If
Next IX1 Next IY1
For i = 1 To UBoundDUMMYMAT, 1 Dummy = DUMMYMATi, i
For j = 1 To UBoundDUMMYMAT, 2 DUMMYMATi, j = DUMMYMATi, j Dummy
Universitas Sumatera Utara
Ci, j = Ci, j Dummy Next j
For X = 1 To UBoundDUMMYMAT, 1 If X i Then
Dummy = DUMMYMATX, i For j = 1 To UBoundDUMMYMAT, 2
DUMMYMATX, j = DUMMYMATX, j - Dummy DUMMYMATi, j
CX, j = CX, j - Dummy Ci, j Next j
End If Next X
Next i
4.1.5 Algoritma Enkripsi Hill Cipher
If MatrixSize = 2 Then For i = 0 To picSource.ScaleWidth - 1
For j = 0 To picSource.ScaleHeight - 1 Step 2 Set MatrixHill1, 1 = Empty
Set MatrixHill1, 2 = Empty Set MatrixHill1, 3 = Empty
Set MatrixHill2, 1 = Empty Set MatrixHill2, 2 = Empty
Set MatrixHill2, 3 = Empty PixelColor = GetPixelpicSource, i, j
R = PixelColor Mod 256 G = PixelColor \ 256 Mod 256
B = PixelColor \ 256 \ 256 MatrixPic1, 1 = R
MatrixPic1, 2 = G MatrixPic1, 3 = B
PixelColor = GetPixelpicSource, i, j + 1 R = PixelColor Mod 256
G = PixelColor \ 256 Mod 256 B = PixelColor \ 256 \ 256
MatrixPic2, 1 = R MatrixPic2, 2 = G
Universitas Sumatera Utara
MatrixPic2, 3 = B Call MatrixMULMatrixKey, MatrixPic, MatrixHill
Reset Nilai kembali For k = 1 To 2
For l = 1 To 3 Dump = MatrixHillk, l
If Dump 0 Then While Dump 0
Dump = Dump + 256 Wend
ElseIf Dump = 0 Then Dump = Dump Mod 256
End If MatrixHillk, l = Dump
Next l Next k
SetPixel picDest, i, j, SetPixel picDest, i, j + 1
Next j Next i
End if If MatrixSize = 3 Then
For i = 0 To picSource.ScaleWidth - 1 For j = 0 To picSource.ScaleHeight - 1 Step 3
Set MatrixHill21, 1 = Empty Set MatrixHill21, 2 = Empty
Set MatrixHill21, 3 = Empty Set MatrixHill22, 1 = Empty
Set MatrixHill22, 2 = Empty Set MatrixHill22, 3 = Empty
Set MatrixHill23, 1 = Empty Set MatrixHill23, 2 = Empty
Set MatrixHill23, 3 = Empty PixelColor = GetPixelpicSource, i, j
R = PixelColor Mod 256 G = PixelColor \ 256 Mod 256
Universitas Sumatera Utara
B = PixelColor \ 256 \ 256 MatrixPic21, 1 = R
MatrixPic21, 2 = G MatrixPic21, 3 = B
PixelColor = GetPixelpicSource, i, j + 1 R = PixelColor Mod 256
G = PixelColor \ 256 Mod 256 B = PixelColor \ 256 \ 256
MatrixPic22, 1 = R MatrixPic22, 2 = G
MatrixPic22, 3 = B PixelColor = GetPixelpicSource, i, j + 2
R = PixelColor Mod 256 G = PixelColor \ 256 Mod 256
B = PixelColor \ 256 \ 256 MatrixPic23, 1 = R
MatrixPic23, 2 = G MatrixPic23, 3 = B
Call MatrixMULMatrixKey, MatrixPic2, MatrixHill2
Reset Nilai kembali For k = 1 To 3
For l = 1 To 3 Dump = MatrixHill2k, l
If Dump 0 Then While Dump 0
Dump = Dump + 256 Wend
ElseIf Dump = 0 Then Dump = Dump Mod 256
End If MatrixHill2k, l = Dump
Next l Next k
SetPixel picDest, i, j SetPixel picDest, i, j + 1
Universitas Sumatera Utara
SetPixel picDest, i, j + 2 Next j
Next i End If
4.1.6 Algoritma Dekripsi Hill Cipher